package com.ygqh.baby.service;

import com.ygqh.baby.ao.Message;
import com.ygqh.baby.ao.QueryInfo;
import com.ygqh.baby.ao.ResultSet;
import com.ygqh.baby.model.FortuneBagDetailVo;
import com.ygqh.baby.model.FortuneBagVo;
import com.ygqh.baby.po.YgFortuneBag;

import java.util.List;
import java.util.Map;

/**
 * @author admin
 */
public interface YgFortuneBagService {

	List<YgFortuneBag> find();

	int findCount();

	YgFortuneBag findById(Long id);

	int deleteSoft(Long[] ids);

	int deleteSoft(Long id);

	int save(YgFortuneBag ygFortuneBag);

	int update(YgFortuneBag ygFortuneBag);

	int saveOrUpdate(YgFortuneBag ygFortuneBag);

	ResultSet<FortuneBagVo> search(QueryInfo queryInfo, String productName);

	ResultSet<FortuneBagDetailVo> searchDetail(QueryInfo queryInfo, String batchNo, String skuCode);

	/**
	 * 根据福袋skuCode获取福袋信息列表
	 * <p>
	 * 这里的库存返回m站真实库存
	 *
	 * @param batchNo     福袋活动批次
	 * @param skuCodeList 福袋skuCode
	 * @param hasStock    是否有库存
	 * @return List<YgFortuneBag>
	 */
	List<YgFortuneBag> findFortuneBagListWithStock(String batchNo, List<String> skuCodeList, Boolean hasStock);

	/**
	 * 批量保存福袋产品信息
	 *
	 * @param fortuneBagList 福袋产品信息
	 * @param handler        操作人
	 * @return
	 */
	Message saveBatch(List<YgFortuneBag> fortuneBagList, String handler);

	/**
	 * 解析福袋产品的excel信息
	 *
	 * @param excelInfo excel信息
	 * @return
	 */
	List<YgFortuneBag> resolveDataFromExcel(List<Map<Integer, Object>> excelInfo);

	List<FortuneBagVo> findFortuneBagInfoByCopy(String skuCode);

	List<FortuneBagDetailVo> findFortuneBagDetailByCopy(String batchNo, String skuCode, String sizeName);
}
